#pragma once

#include "GraphData.h"

#include <vector>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <numeric>
#include <fstream>
#include <string>

struct NetworkCharacteristics {
    int nodeCount;
    int edgeCount;
    double averageDegree;
    double averageBetweenness;
};

NetworkCharacteristics computeNetworkCharacteristics(const std::vector<Node>& nodes, const std::vector<Edge>& edges);
 
void writeNetworkCharacteristicsToCsv(const NetworkCharacteristics& stats, const std::string& filename);